package secondStage.part6.Lambda表达式.Lambda注意事项;

/**
 * @ClassName: [LambdaDemo3]
 * @Description: Lambda表达式注意事项
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-07]
 * @Version: [v1.0]
 */
/*
1.6 Lambda表达式的注意事项
注意事项:
●使用Lambda必须要有接口，且要求接口中有且仅有一个抽象方法
●必须有上下文环境,能推导出Lambda对应的接口
根据 局部变量的赋值 得知Lambda对应的接口: Runnabler= () -> System.out.println("Lambda表达式);
根据 调用方法的参数 得知Lambda对应的接口: new Thread(() -> System.out.println("Lambda表达式).start();
 */
public class LambdaDemo3 {
    public static void main(String[] args) {
        //用Lambda表达式必须要有接口，并且要求接口中有且仅有一个抽象方法
        userInter(()-> System.out.println("你好啊！Lambda表达式"));

        //必须有.上下文环境，才能推导出Lambda对应的接口
        /*new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类");
            }
        }).start();*/
        Runnable r = ()-> System.out.println("你好！");
        new Thread(r).start();

        new Thread(()-> System.out.println("Lambda表达式")).start();

    }
    private static void userInter(Inter i){
        i.show();
    }
}
